// 提供复用逻辑的函数
import { useIntersectionObserver } from '@vueuse/core'
import { ref } from 'vue'

/**
 * 数据懒加载
 * @param {Object} target -Dom 对象
 * @param {Function} apiFn -API函数 
 */


export const useLazyData = (apiFn) => {

    const result = ref([])
    const target = ref(null)
    const { stop } = useIntersectionObserver(

        target,

        ([{ isIntersecting }], observerElement) => {
            if (isIntersecting) {
                stop()
                apiFn().then(data => {
                    result.value = data.result
                })
            }
        },
        // 配置选项
        {
            threshold: 0
        }
    )
    return { result, target }
}